//package org.example;
//
//import org.example.entity.CustomerInfo;
//import org.example.entity.CustomerOrder;
//import org.example.entity.CustomerRepayPlan;
//import org.example.generator.DataGenerator;
//
//import java.time.LocalDate;
//import java.util.List;
//
///**
// * 测试CustomerOrder的更新
// */
//public class TestCustomerOrderUpdates {
//    public static void main(String[] args) {
//        System.out.println("=== 测试CustomerOrder的更新 ===");
//
//        // 生成客户信息
//        CustomerInfo customer = DataGenerator.generateCustomerInfo(LocalDate.of(2023, 8, 15));
//        System.out.println("客户信息:");
//        System.out.println("  ID: " + customer.getId());
//        System.out.println("  姓名: " + customer.getPlName());
//        System.out.println("  创建时间: " + customer.getCreatedTime());
//
//        // 生成订单
//        CustomerOrder order = DataGenerator.generateCustomerOrder(customer, LocalDate.of(2023, 8, 15), "测试");
//        System.out.println("\n订单信息:");
//        System.out.println("  订单号: " + order.getOrderNo());
//        System.out.println("  CustomerId: " + order.getCustomerId());
//        System.out.println("  放款时间: " + order.getFrTime());
//        System.out.println("  贷款金额: " + order.getLoanAmount());
//        System.out.println("  产品名称: " + order.getProductName());
//
//        // 生成还款计划
//        List<CustomerRepayPlan> plans = DataGenerator.generateRepayPlan(order);
//        System.out.println("\n还款计划数量: " + plans.size());
//
//        // 显示还款计划详情
//        System.out.println("\n还款计划详情:");
//        BigDecimal totalPaidPrincipal = BigDecimal.ZERO;
//        for (CustomerRepayPlan plan : plans) {
//            System.out.printf("  期数%d: 应还日期=%s, 状态=%s, 应还本金=%s, 实际本金=%s\n",
//                    plan.getBillTenor(),
//                    plan.getDueDate(),
//                    plan.getRepayStatus(),
//                    plan.getNowPayPrincipal(),
//                    plan.getActualPrincipal());
//
//            if ("已结清".equals(plan.getRepayStatus()) && plan.getActualPrincipal() != null) {
//                totalPaidPrincipal = totalPaidPrincipal.add(plan.getActualPrincipal());
//            }
//        }
//
//        System.out.println("\n统计信息:");
//        System.out.println("  贷款总额: " + order.getLoanAmount());
//        System.out.println("  已还本金总额: " + totalPaidPrincipal);
//        System.out.println("  剩余金额: " + order.getRemainPayAmount());
//
//        // 验证逻辑
//        System.out.println("\n验证结果:");
//
//        // 验证customerId
//        if (order.getCustomerId().equals(customer.getId())) {
//            System.out.println("  ✓ CustomerId正确");
//        } else {
//            System.out.println("  ✗ CustomerId错误");
//        }
//
//        // 验证放款时间
//        if (order.getFrTime().equals(customer.getCreatedTime().toString())) {
//            System.out.println("  ✓ 放款时间正确");
//        } else {
//            System.out.println("  ✗ 放款时间错误");
//        }
//
//        // 验证剩余金额计算
//        BigDecimal expectedRemain = order.getLoanAmount().subtract(totalPaidPrincipal);
//        if (order.getRemainPayAmount().equals(expectedRemain.max(BigDecimal.ZERO))) {
//            System.out.println("  ✓ 剩余金额计算正确");
//        } else {
//            System.out.println("  ✗ 剩余金额计算错误");
//        }
//
//        // 验证放款时间格式
//        if (order.getFrTime().matches("\\d{4}-\\d{2}-\\d{2}")) {
//            System.out.println("  ✓ 放款时间格式正确");
//        } else {
//            System.out.println("  ✗ 放款时间格式错误");
//        }
//    }
//}

